Very large computer programs may commonly include static segments in the form of low-level executable programs, usually written in computer languages such as C or FORTRAN or C++ to administer internal functions such as memory management, I/O control, and the like. One difficulty encountered in such large computer programs is in breaking up the program into logical modules or subsets that can be conveniently packaged for sale to customers who can thereby select the minimal few modules needed for the functional capabilities required in a given system. These large computer programs also commonly include other segments in the form of higher level languages such as `SKILL`, which is a LISP-based language commonly used in the Computer-Aided Design (CAD) industries. Although SKILL is a less efficient language than C or C++ or the other low-level languages, it is nevertheless a computer language of higher descriptive power that can be used to develop software much faster, and that can be used to rewrite software much quicker.
It is desirable to break up the SKILL segments and the static segments in such a way as to facilitate composing software products with certain capabilities on demand. In addition, it is desirable while running a large computer program not to overload the computer with all of the software loaded at once. It is commonly more desirable to run the minimal amount of software needed to accomplish a selected task. Thus, it may be desirable to run selected static segments of the program and then on demand, bring in the specific SKILL segments that are needed for the requisite functionality. Therefore, it is desirable to load the selected SKILL segments of a large program, on demand, in such a way that a user is not aware that the computer is loading in additional software, or that the computer is doing something else regarding management of the requisite software than is actually requested by the user in directing the computer to perform some functionality.